// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
jQuery(function($){//on document ready
    //autocomplete
    $('input.autocomplete').each(function(){
        var input = $(this);
        input.autocomplete(input.attr('data-autocomplete-url'),{
            matchContains:1,//also match inside of strings when caching
            // mustMatch:1,//allow only values from the list
            // selectFirst:1,//select the first item on tab/enter
            removeInitialValue:0//when first applying $.autocomplete
        });
    });
});

function addCargo(cargo_id, jerarquia) {

    if(cargo_id) {
        if(jerarquia == 'subordinado') {
            $('#subordinados')[0].value = $('#subordinados')[0].value + ' ' + cargo_id;
        }
        if(jerarquia == 'par') {
            $('#pares')[0].value = $('#pares')[0].value + ' ' + cargo_id;
        }
        if(jerarquia == 'superior') {
            $('#superiores')[0].value = $('#superiores')[0].value + ' ' + cargo_id;
        }
        if(jerarquia == 'sin_relacion') {
            $('#sin_relacion')[0].value = $('#sin_relacion')[0].value + ' ' + cargo_id;
        }
    }
}

function removeCargo(cargo_id) {
    if(cargo_id) {

        var subordinados = $('#subordinados')[0].value.split(' ');
        var ind_sub      = subordinados.indexOf(cargo_id + '');

        var pares        = $('#pares')[0].value.split(' ');
        var ind_par      = pares.indexOf(cargo_id + '');

        var superiores   = $('#superiores')[0].value.split(' ');
        var ind_sup      = superiores.indexOf(cargo_id + '');

        var sin_relacion  = $('#sin_relacion')[0].value.split(' ');
        var ind_sin_relac = sin_relacion.indexOf(cargo_id + '');


        if(ind_sub >= 0) {
            subordinados.splice(ind_sub, 1);
            $('#subordinados')[0].value = subordinados.join(' ');
        }
        if(ind_par >= 0) {
            pares.splice(ind_par, 1);
            $('#pares')[0].value = pares.join(' ');
        }
        if(ind_sup >= 0) {
            superiores.splice(ind_sup, 1);
            $('#superiores')[0].value = superiores.join(' ');
        }
        if(ind_sin_relac >= 0) {
            sin_relacion.splice(ind_sin_relac, 1);
            $('#sin_relacion')[0].value = sin_relacion.join(' ');
        }
    }
}

function quitar(element) {
    $(element.parentNode).remove()
}

function quitarOpcion(element, opcion_id) {
    quitar(element);
    if(opcion_id != null) {
        $.ajax({
            url:'/evaluaciones/quitar_opcion/'+ opcion_id
            });
    }
}

function incremtIndice(){
    $('#indice').val($('.agregar_pregunta').size())
}

function getId() {
    $('#indice').val()
}

function setId() {
    var pregunta = $('.agregar_pregunta')[$('#indice').val() - 1]
    $(pregunta).attr('id', 'pregunta_' + $('#indice').val())
    $('#' + pregunta.id + ' > .field > .competencia_id').attr('id', 'competencia_id_' + $('#indice').val())
    $('#' + pregunta.id + ' > .field > .competencia_nombre').attr('id', 'competencia_nombre_' + $('#indice').val())
    $('#' + pregunta.id + ' > .competencia > label.lbl_competencia').attr('id', 'lbl_competencia_' + $('#indice').val())

    $('#' + pregunta.id + ' > .field > .cargo_id').attr('id', 'cargo_id_' + $('#indice').val())
    $('#' + pregunta.id + ' > .field > .cargo_nombre').attr('id', 'cargo_nombre_' + $('#indice').val())

}

function setIdOnEdit() {
    $('.agregar_pregunta').each(function(index, object){
        $(object).attr('id', 'pregunta_' + parseInt(index + 1))
    });
}

function addEventToCompetition(indice) {
    var ind = indice || $('#indice').val();
    $('#competencia_nombre_'+ ind).keydown(function(e){
        var keynum;
        keynum = (e.keyCode ? e.keyCode : e.which);
        var str = $(this).val();
        var reg_exp = /<span id=\'(\d*)\'.*>/;
        var match   = str.match(reg_exp);
        var id = RegExp.$1;
        if((keynum == 9 || keynum == 13) && match != null) {
            var competencia_nombre = $('#' + id ).text();
            $('#competencia_id_'+ ind).val(id);
            $('#competencia_nombre_'+ ind)[0].value = competencia_nombre;
        }
    });

    $('#cargo_nombre_'+ ind).keydown(function(e){
        var keynum;
        keynum = (e.keyCode ? e.keyCode : e.which);
        var str = $(this).val();
        var reg_exp = /<span id=\'cargo_(\d*)\'.*>/;
        var match   = str.match(reg_exp);
        var id = RegExp.$1;
        if((keynum == 9 || keynum == 13) && match != null) {
            var cargo_nombre = $('#cargo_' + id ).text();
            $('#cargo_id_'+ ind).val(id);
            $('#cargo_nombre_'+ ind)[0].value = cargo_nombre;
        }
    });

}

function completeOnClick(indice, tipo) {
    var ind = $('#indice').val() == 'null' ? indice : $('#indice').val()
    parseResults(ind, tipo)
}

function parseResults(ind, tipo) {
    var id     = $('.ac_results > ul > li.ac_over > span')[0].id
    var nombre =  $('.ac_results > ul > li.ac_over').text()
    if(tipo == 'cargo') {
        $('#cargo_id_'+ ind).val(id);
        resetField(ind, tipo)
        $('#cargo_nombre_'+ ind).val(nombre);
    }
    else {
        $('#competencia_id_'+ ind).val(id);
        resetField(ind, tipo)
        $('#competencia_nombre_'+ ind).val(nombre);
    }
}


function resetField(indice, tipo) {
    if(tipo == 'cargo') {
        $('#cargo_nombre_'+ indice).remove();
        $('#pregunta_' + indice + ' > .cargo' ).append('<input type=\"text\" value=\"\" style=\"\" size=\"30\" name=\"cargo_autocomplete\" id=\"cargo_nombre_'+ indice  +'\" class=\"cargo_nombre ac_input\" autocomplete=\"off\">')
        $(document).ready(function(){
            $('#cargo_nombre_' + indice).autocomplete('/evaluaciones/auto_complete_for_cargo_nombre?indice=' + indice);
        });
        $(document).ready(function(){
            addEventToCompetition(indice)
            });
    }
    else {
        $('#competencia_nombre_'+ indice).remove();
        $('#pregunta_' + indice + ' > .competencia' ).append('<input type=\"text\" value=\"\" style=\"\" size=\"30\" name=\"competencia_autocomplete\" id=\"competencia_nombre_'+ indice  +'\" class=\"competencia_nombre ac_input\" autocomplete=\"off\">')
        $(document).ready(function(){
            $('#competencia_nombre_' + indice).autocomplete('/evaluaciones/auto_complete_for_competencia_titulo?indice=' + indice);
        });
        $(document).ready(function(){
            addEventToCompetition(indice)
            });
    }
  
}

function clickOption(evaluacion_id, pregunta_id,  opcion_id, evaluado_id ) {
    $.ajax({
        url: "/responder",
        data: 'evaluacion_id=' + evaluacion_id + '&pregunta_id=' + pregunta_id + '&opcion_id=' + opcion_id + '&evaluado_id=' + evaluado_id,
    });
}

function quitarCampos(boton){
    $(boton).prev().val("1");
    $(boton).closest('tr').hide();
}

function agregarCampos(boton,association,content){
    var new_id = new Date().getTime();
    var regexp = new RegExp("new_"+association,"g");
  
    $('tr.'+association+':last').after(content.replace(regexp,new_id));
}

function crearNuevaCategoria(boton,association,content){
    var new_id = new Date().getTime();
    var regexp = new RegExp("new_"+association,"g");
    $('tr.'+association+':last').after(content.replace(regexp,new_id));
}